#include <iostream>
#include <algorithm>
#include <math.h>
#include <string.h>
using namespace std;


struct wood{
	int len,width;
};


bool cmp(wood a,wood b){
	if(a.len == b.len)
		return a.width>b.width;
	return a.len>b.len;
}


int main(){
	int n;
	cin>>n;
	wood a[n];
	for(int i=0;i<n;i++)
		cin>>a[i].len>>a[i].width;
	sort(a,a+n,cmp);
	
	int index=0;
	int dp[n];
	dp[0] = 0x7fffffff;
	for(int i=0;i<n;i++){
		for(int j=index;j>=0;j--){
			if(a[i].width > dp[j]){
				dp[j+1] = a[i].width;
				index = max(index,j+1);
				break;
			}
		}
		if(dp[0] > a[i].width){
			dp[0] = a[i].width;
		}
	}
	cout<<index+1;
	return 0;
}
